Lecture � CS187 Computational linguistics

Greg Detre

@14:30 Friday, October 11, 2002

 

Introduction

story: Symantec was founded selling Q&A, a natural language database product

 

Lecture

n ==> [X] :- n(X).

n(toad).

n(frog).

etc.

 

in Prolog, �=� is defined by �X = X� � built-in

strings are in double-quotes

upper-case atoms are in single-quotes

 

DCG � definite clause grammars

non-terminals thread string positions

s --> np, vp.

s(P0, P) :- np(P0, P1), vp(P1, P).

when it reads in the file, it turns the first line into the second line

terminals(in brackets) thread directly

 

escapes to Prolog (in braces) don�t thread string positions

that is, they don�t undergo the transformations

 

to utilise this notation:

s([frog, met, toad], []).

s([frog|Rest],[]).

what sentences start with �frog ��?

 

non-terminals are no longer atomic � they have arguments, so they have (arbitrary) structure

so how do we get the np and vp to agree? add an extra argument

 

problem with combinatorial explosion if you keep adding these agreement arguments?

sometimes adding arguments can make it more efficient (because it can prune better)

it depends � I need to find out how the execution model works???

 

David: this way, every time we want to add an argument, we have to change the grammar

why not have the argument as a list of subcategorisation features?

Dev: lookup table

build a term out of a function symbol and some arguments

 

types of verbs:

infinitival � e.g. �to ��

finite � has tense information, e.g. �goes�

non-finite � e.g. �go�

past participal � e.g. �gone�

progressive � e.g. �going�

 

�/�

e.g. �aux(Form/Required)�

it�s a function symbol � convention??? could have put it in two different arguments

 

rather than listing all the forms, the right thing to do is to build a morphological analyser in Prolog that generates them for you

 

represent parse trees as terms

pass the parse tree in as an argument if you�re trying to discern not just whether a string is generable by the grammar, but its structure

we could do it like either of these:

pt(s,[pt(np,[frog]),pt(�

s(np(frog),vp(left))�������������������������� less typing, but often not as good as the former

 

Semantics

meaning is based somehow on the string�s structure

e.g. �I saw her duck�

ken church: ambiguous between a sentence and a noun phrase

�I see a bee�

each of those terms are nouns (letter �I�, the holy �see�, letter �a�, �bee�)

English allows noun noun compounds, e.g. metal bread knives

 

how could you incorporate meaning?

representation of the real world � denotational semantics, i.e. logic

denotational semantics:

denote � Mark out; distinguish by a mark or sign. L16. 2 Indicate; be an outward or visible sign of. L16.b Give to understand; make known. M17. <unknown>3 Note down; describe. Only in 17. 4 Signify; be a symbol for or a name of. M17.

denotation (dictionary meaning) vs connotation (meaning we give to it)

denotation /di:n<schwa>(U)"teI<longs>(<schwa>)n/ n.M16. [Fr. d�tation or L denotatio(n-), f. denotat- pa. ppl stem of denotare: see DENOTE, -ATION.]1 The action of denoting; expression by marks, signs, or symbols; indication. M16.b A mark etc. denoting a thing; a sign. M17. 2 The meaning or signification of a term, as distinct from its implications or connotations. E17. 3 A term used to describe something; a designation. M17. 4 Logic. The object or range of objects which a word denotes; extension. M19.

denotational relation between words and things � words denote things

i.e. that words denote some things and not others, right???

number vs numeral

they want the phrases of a logic to denote things

we want to know, for every word/phrase in English, what it�s denotation is

but you need a notation for representing the world

so we�re going to use some other logic to denote the world

it�s going to look as though we�re translating from English to logic, but since that logic is a notation for the world, you�re really only using that logic as an expedient for English denoting the world

you�re going to need propositions in your logic

 

frog meets toad:

meet(frog, toad)

holds(meet, frog, toad)

Davidsonian???

meeting holds of certain events

thereIsAn(e) AND meeter(e,frog) AND meetee(e,toad)

 

lambda(x) meet(x,toad)

where lambda is a function from objects to propositions (and then to truth values???)

Richard Montague preferred x(hat) to Church�s lambda notation

so our logic has to include FOL plus the lambda stuff

(lambda(x)P)Question P[x | Q]

(lambda(x) lambda(y) p(x, f(y)))a lambda(y) p(a, f(y))

(lambda(x) lambda(x) p(x, f(x)))a lambda(x) p(a,f(a))

what is our intuition about what this is supposed to mean???

we want to be able to rename variables and not change what the notation means

 

�most� is not expressible in FOL

why???

 

 

 

 

 

Projects

write a natural language interface to a software system

pick a software system, one that you�re familiar with

imagine you�re going to interact with it in natural language

why are you going to interact with it in NL? not necessarily because it�s the best interface�

there seem to be very few pieces of software for which NL is the best interface, because people aren�t selling them

but that�s because they don�t work

it doesn�t matter if it�s lame

dancing bear � it�s not that it dances so well, but that it dances at all

don�t worry about practicality � shouldn�t just be signal processing

the successful NL interfaces are just low-level

we�re interested in higher-level � syntax, semantics etc.

proposal due on Friday

 

Quake idea:

the scene-descriptor might change the emphasis from kiling to interaction in some way

better still, it might allow players on the same team playing over the internet to automatically describe where they are to help them find each other

 

Questions

prolog as a NDFA???

so is the DCG with extra arguments still CF???

to allow Prolog to take context into account, you need to maybe add arguments

but how would you ground Prolog�s stuff semantically??? how would you get it to disambiguate based on semantics??? can you do things probabilistically???